const { defineConfig } = require('@vue/cli-service')
const path = require("path")
const webpack = require("webpack")

// 后端真实的请求地址
const realApiUrl = process.env.VUE_APP_API
// 后端真实的请求地址前缀
const realApiPrefix = process.env.VUE_APP_API_PREFIX

module.exports = defineConfig({
  transpileDependencies: true,

  // 前端代理服务器
  devServer: {
    proxy: {
      // proxyon为代理前缀，如果请求中包含该前缀，就走代理
      '/api': {
        // 真实的后端服务器地址
        target: `${realApiUrl}`,
        ws: true,
        // 控制请求头中的host
        changeOrigin: true,
        // 将代理前缀名称替换为后端的真实前缀名称
        pathRewrite: {
          '^/api': `${realApiPrefix}`
        }
      },
    }
  },

  // 项目入口文件配置
  pages: {
    index: {
      // page 的入口
      entry: 'src/main.js',
      // 模板来源
      template: 'public/index.html',
      // 在 dist/index.html 的输出
      filename: 'index.html',
      // 当使用 title 选项时，
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: 'QuickSand'
    },
  },

  // 是否启用语法检查
  lintOnSave: false,

  // 构建时开启多进程处理 babel 编译
  parallel: require("os").cpus().length > 1,

  configureWebpack: {
    resolve: {
      // 真实路径映射，使用时如使用 import Xxx from './src/pages/common/Xxx',可简写为import Xxx from '@common/Xxx'
      alias: {
        '@': path.resolve(__dirname, './src'),
        '@pages': path.resolve(__dirname, './src/pages'),
        '@common': path.resolve(__dirname, './src/pages/common'),
        '@test': path.resolve(__dirname, './src/pages/test'),
        '@report': path.resolve(__dirname, './src/pages/report'),
        '@disclosure': path.resolve(__dirname, './src/pages/disclosure'),
      },
    },
  },
})
